/**
 * Proyecto X Tecnologia de programacion  2do cuatrimestre de 2012
 * @author
 * German Rickert LU: 93284
 * Maximiliano Tiberi LU: 83600
 * Sebastian Larrieu LU: 94056
 */
package entidades;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.Timer;

import grafica.RepresentacionGrafica;


public abstract class Marvel extends Entidad
{
	protected int vida;
	protected int precio;
	protected int defensa;
	protected boolean accion;
	protected Timer tAccion;
	
	//Constructor
	public Marvel(int v)
	{
		this.crearTimer(v);
		tAccion.start();
	}
	//consultas
	
	/**
	 * @return Vida restante.
	 */
	public int getVida()
	{
		return vida;
	}
	
	/**
	 * @return precio de creacion.
	 */
	public int getPrecio()
	{
		return precio;
	}
	
	/**
	 * @return Representacion grafica del personaje.
	 */
	public RepresentacionGrafica getGrafica()
	{
		return super.getRepresentacion();
	}
	
	/**
	 * @return Heroe.
	 */
	public boolean esBueno()
	{
		return true;
	}
	
	 public boolean getAccion()
		{
			return accion;
		}
	
	 /**
	  * Disparo de cada personaje
	  */
	public abstract Disparo atacar ();
	
	
	//conmandos
	
	/**
	 * @param poder de ataque recibido.
	 */
	 
	 public synchronized void recibirAtaque(int d)
	 {	
		int aux = Math.abs(d-defensa);
		vida= vida-aux;
	 }
	 
	 /**
	  * crea un temporizador segun la velocidad del personaje
	  * @param v
	  */
	 private void crearTimer(int v)
	 {
		 tAccion = new Timer (v*3000, new ActionListener () 
		{ 
		    public void actionPerformed(ActionEvent e) 
		    { 
		        accion=true;
		     } 
		});
	 }
	 
	 /**
	  * Setea el valor del atributo accion con el valor pasado.
	  */
	 public void setAccion(boolean b)
	 {
		 accion=b;
	 }
	 
	 
	 
}